{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T12:34:31.974795Z",
     "start_time": "2018-10-18T12:34:31.472636Z"
    },
    "collapsed": true,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import torch.nn.functional as F\n",
    "from torch.autograd import Variable\n",
    "from torch.optim.lr_scheduler import StepLR\n",
    "from torch.utils.data import DataLoader,TensorDataset\n",
    "import torch.utils.data as data\n",
    "import numpy as np\n",
    "import scipy.io as sio\n",
    "import math\n",
    "import argparse\n",
    "import random\n",
    "import os\n",
    "from My_Loss import HardTripletLoss\n",
    "from My_Loss import HardTripletLoss2\n",
    "from My_Loss import HardTripletLoss_D\n",
    "from tensorboardX import SummaryWriter\n",
    "import visdom"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T12:34:31.977958Z",
     "start_time": "2018-10-18T12:34:31.975857Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "BATCH_SIZE = 64\n",
    "EPISODE = 100000\n",
    "TEST_EPISODE = 1000\n",
    "LEARNING_RATE =1e-3\n",
    "Weight_Deacy = 1e-6\n",
    "GPU = 0\n",
    "Margin = 3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T12:34:34.007136Z",
     "start_time": "2018-10-18T12:34:31.979330Z"
    },
    "hide_input": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "init dataset\n",
      "----------------------------------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "print(\"init dataset\")\n",
    "##################################参数##################################################################\n",
    "dataroot = '../data'\n",
    "dataset = 'AwA1_data'\n",
    "image_embedding = 'res101'               #ResNet101层\n",
    "class_embedding = 'original_att'         #属性表达 85-d\n",
    "#######################################读取视觉特征###################################################################\n",
    "\n",
    "matcontent = sio.loadmat(dataroot + \"/\" + dataset + \"/\" + image_embedding + \".mat\")  #scipy loadmat\n",
    " \n",
    "feature = matcontent['features'].T         #转置 30478x2048 每一行是一个完整的样本\n",
    "\n",
    "label = matcontent['labels'].astype(int).squeeze() - 1   #matlab begin 1 ,numpy begin 0\n",
    "########################################读取属性特征###########################################################\n",
    "\n",
    "matcontent = sio.loadmat(dataroot + \"/\" + dataset + \"/\" + class_embedding + \"_splits.mat\")\n",
    "\n",
    "    \n",
    "# numpy array index starts from 0, matlab starts from 1\n",
    "trainval_loc = matcontent['trainval_loc'].squeeze() - 1    #squeeze()去掉维度中的1 AxBx1 --->AxB\n",
    "\n",
    "test_seen_loc = matcontent['test_seen_loc'].squeeze() - 1\n",
    "test_unseen_loc = matcontent['test_unseen_loc'].squeeze() - 1\n",
    "\n",
    "attribute = matcontent['att'].T    #转置 50x85 每行是整个属性向量\n",
    "\n",
    "x = feature[trainval_loc]                      # train_features trainval里面是图片的编号 begin with 0 ，19832个\n",
    "train_label = label[trainval_loc].astype(int)  # train_label  int类型没变 每个图片的lable 19832个\n",
    "train_id = np.unique(train_label)\n",
    "\n",
    "att = attribute[train_label]                   # train attributes 每个图片的属性 19832个\n",
    "\n",
    "    \n",
    "x_test = feature[test_unseen_loc]                   # test_feature 5685个\n",
    "test_label = label[test_unseen_loc].astype(int)     # test_label   5685个\n",
    "\n",
    "x_test_seen = feature[test_seen_loc]                #test_seen_feature 4958个\n",
    "test_label_seen = label[test_seen_loc].astype(int)  # test_seen_label  4958个\n",
    "    \n",
    "test_id = np.unique(test_label)                     # test_id  10个类 ，unique去重\n",
    "att_pro = attribute[test_id]                        # test_attribute 每一类的属性向量 10x85\n",
    "\n",
    "# train set\n",
    "train_features = torch.from_numpy(x)   #np-->tensor\n",
    "#train_fearures_negative = torch.from_numpy(x_negative)\n",
    "\n",
    "sample_attributes=[]\n",
    "train_label = torch.from_numpy(train_label).unsqueeze(1) #每张图片的属性转化 ，unsqueeze(1)就是插入到第一维度 AxB维-->Ax1xB\n",
    "# attributes\n",
    "all_attributes = np.array(attribute)  #所有50类属性转变为numpy数组???属性向量仍然用的numpy类型 没有转化为pytorch\n",
    "    \n",
    "#print('-'*50)\n",
    "attributes = torch.from_numpy(attribute) \n",
    "#print(attribute)\n",
    "# test set\n",
    "\n",
    "test_features = torch.from_numpy(x_test)\n",
    "#print(test_features.shape)\n",
    "\n",
    "test_label = torch.from_numpy(test_label).unsqueeze(1)\n",
    "#print(test_label.shape)\n",
    "\n",
    "testclasses_id = np.array(test_id)\n",
    "#print(testclasses_id.shape)\n",
    "\n",
    "test_attributes = torch.from_numpy(att_pro).float()\n",
    "#print(test_attributes.shape)\n",
    "\n",
    "test_seen_features = torch.from_numpy(x_test_seen)\n",
    "#print(test_seen_features.shape)\n",
    "\n",
    "test_seen_label = torch.from_numpy(test_label_seen)\n",
    "\n",
    "train_data = TensorDataset( train_label, train_features )\n",
    "#train_data = TensorDataset(train_label, train_features, train_fearures_negative)\n",
    "\n",
    "#################here need new code to make triplet data#####################\n",
    "print('-'*100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T12:34:34.010382Z",
     "start_time": "2018-10-18T12:34:34.008170Z"
    },
    "collapsed": true,
    "hide_input": true
   },
   "outputs": [],
   "source": [
    "from my_net_3 import AttributeNetwork\n",
    "from my_net_3 import MetricNetwork"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T12:34:36.077373Z",
     "start_time": "2018-10-18T12:34:34.011423Z"
    },
    "hide_input": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "init networks\n",
      "----------------------------------------------------------------------------------------------------\n"
     ]
    }
   ],
   "source": [
    "# init network\n",
    "print(\"init networks\")\n",
    "attribute_network = AttributeNetwork(85,1024,2048)  #85d属性 1024隐藏层 2048输出 85d到2048d\n",
    "metric_network = MetricNetwork(2048,1024,2048)\n",
    "\n",
    "attribute_network.cuda(GPU) \n",
    "metric_network.cuda(GPU)\n",
    "\n",
    "#学习率每200k步 乘0.5\n",
    "attribute_network_optim = torch.optim.SGD(attribute_network.parameters(), lr=LEARNING_RATE,weight_decay=Weight_Deacy,momentum=0.9 )\n",
    "metric_network_optim = torch.optim.SGD(metric_network.parameters(), lr=LEARNING_RATE,weight_decay=Weight_Deacy,momentum=0.9 )\n",
    "#\n",
    "#triplet_network_optim = torch.optim.SGD(triplet_network.parameters(), lr=LEARNING_RATE,momentum=0.9 , \n",
    "#                                         weight_decay=Weight_Deacy)\n",
    "\n",
    "attribute_network_scheduler = StepLR(attribute_network_optim , step_size=10000 , gamma=0.5)\n",
    "metric_network_scheduler = StepLR(metric_network_optim , step_size=10000 , gamma=0.5)\n",
    "#\n",
    "print('-'*100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T12:34:36.085259Z",
     "start_time": "2018-10-18T12:34:36.078606Z"
    },
    "collapsed": true,
    "hide_input": true
   },
   "outputs": [],
   "source": [
    "def compute_accuracy(test_features, test_label, test_id, test_attributes):\n",
    "    \n",
    "    test_data = TensorDataset(test_features, test_label)\n",
    "    test_batch = 32\n",
    "    test_loader = DataLoader(test_data, batch_size=test_batch, shuffle=False)\n",
    "    total_rewards = 0\n",
    "\n",
    "    sample_labels = test_id\n",
    "    sample_attributes = test_attributes\n",
    "    class_num = sample_attributes.shape[0]\n",
    "    test_size = test_features.shape[0]\n",
    "\n",
    "    print(\"class num:\", class_num)\n",
    "\n",
    "    for batch_features,batch_labels in test_loader:\n",
    "\n",
    "        batch_size = batch_labels.shape[0]\n",
    "        batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(class_num, 0))\n",
    "        batch_features_ext = metric_network(Variable(batch_features_ext).cuda(GPU).float())  # 32*1024\n",
    "\n",
    "\n",
    "        sample_features = metric_network(attribute_network(Variable(sample_attributes).cuda(GPU).float()))\n",
    "        sample_features_ext = sample_features.repeat(batch_size, 1)\n",
    "\n",
    "\n",
    "        relations = F.pairwise_distance(batch_features_ext, sample_features_ext, 2).view(-1, class_num)\n",
    "        re_batch_labels = []\n",
    "        for label in batch_labels.numpy():\n",
    "            index = np.argwhere(sample_labels == label)\n",
    "            re_batch_labels.append(index[0][0])\n",
    "        re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "\n",
    "\n",
    "        _, predict_labels = torch.min(relations.data, 1)\n",
    "        rewards = [1 if predict_labels[j] == re_batch_labels[j] else 0 for j in range(batch_size)]\n",
    "        total_rewards += np.sum(rewards)\n",
    "    test_accuracy = total_rewards/1.0/test_size\n",
    "    return  test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T12:34:36.094167Z",
     "start_time": "2018-10-18T12:34:36.086688Z"
    },
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def compute_accuracy_per_class(test_features, test_label, test_id, test_attributes,cos_sim = False):\n",
    "    \n",
    "    test_data = TensorDataset(test_features, test_label)\n",
    "    test_batch = 32\n",
    "    test_loader = DataLoader(test_data, batch_size=test_batch, shuffle=False)\n",
    "    total_rewards = 0\n",
    "    #print(test_features.size())\n",
    "    sample_labels = test_id\n",
    "    sample_attributes = test_attributes\n",
    "    class_num = sample_attributes.shape[0]\n",
    "    test_size = test_features.shape[0]\n",
    "    per_class_num = np.zeros(class_num)\n",
    "    per_class_true= np.zeros(class_num)\n",
    "\n",
    "    print(\"class num:\", class_num)\n",
    "\n",
    "    for batch_features,batch_labels in test_loader:\n",
    "\n",
    "        batch_size = batch_labels.shape[0]\n",
    "        batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(class_num, 0))\n",
    "        batch_features_ext = metric_network(Variable(batch_features_ext).cuda(GPU).float())  # 32*1024\n",
    "\n",
    "\n",
    "        sample_features = metric_network(attribute_network(Variable(sample_attributes).cuda(GPU).float()))\n",
    "        sample_features_ext = sample_features.repeat(batch_size, 1)\n",
    "\n",
    "        if cos_sim:\n",
    "            relations = F.cosine_similarity(batch_features_ext, sample_features_ext).view(-1, class_num)\n",
    "        else:\n",
    "            relations = F.pairwise_distance(batch_features_ext, sample_features_ext, 2).view(-1, class_num)\n",
    "        re_batch_labels = []\n",
    "        for label in batch_labels.numpy():\n",
    "            index = np.argwhere(sample_labels == label)\n",
    "            re_batch_labels.append(index[0][0])\n",
    "        re_batch_labels_id, batch_per_num = np.unique(re_batch_labels , return_counts=True) \n",
    "        re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "        \n",
    "        for each in range(re_batch_labels_id.size):\n",
    "            #print(re_batch_labels_id[each])\n",
    "            #print(batch_per_num[each])\n",
    "            per_class_num[re_batch_labels_id[each]] = per_class_num[re_batch_labels_id[each]] + batch_per_num[each]\n",
    "        #print(re_batch_labels_id)\n",
    "        #print('-'*100)\n",
    "        #print(batch_per_num)\n",
    "        #print('-'*100)\n",
    "\n",
    "\n",
    "        _, predict_labels = torch.min(relations.data, 1)\n",
    "        for j in range(batch_size):\n",
    "            if predict_labels[j] == re_batch_labels[j]:\n",
    "                per_class_true[re_batch_labels[j]] = per_class_true[re_batch_labels[j]] + 1\n",
    "            \n",
    "        \n",
    "        \n",
    "    per_accuracy = per_class_true[np.nonzero(per_class_num)] / per_class_num[np.nonzero(per_class_num)]\n",
    "    \n",
    "\n",
    "    test_accuracy = np.sum(per_accuracy)/1.0/np.count_nonzero(per_class_num)\n",
    "    \n",
    "    #print(np.count_nonzero(per_class_num))\n",
    "    return  test_accuracy"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-10-18T13:30:24.987176Z",
     "start_time": "2018-10-18T12:34:36.095353Z"
    },
    "code_folding": [],
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "training...\n",
      "episode: 1 loss tensor(3.0605, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.08949931442823982\n",
      "gzsl: unseen=0.0000 , seen=0.0223 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 200 loss tensor(3.0513, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.0879102487386892\n",
      "gzsl: unseen=0.0000 , seen=0.0239 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 400 loss tensor(3.0874, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.08682156783069524\n",
      "gzsl: unseen=0.0000 , seen=0.0247 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 600 loss tensor(3.0442, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.08574265731162142\n",
      "gzsl: unseen=0.0000 , seen=0.0252 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 800 loss tensor(3.0429, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.0856093122333913\n",
      "gzsl: unseen=0.0000 , seen=0.0258 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1000 loss tensor(3.0355, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.0878646614018992\n",
      "gzsl: unseen=0.0000 , seen=0.0261 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1200 loss tensor(3.0510, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.0891987196788621\n",
      "gzsl: unseen=0.0000 , seen=0.0261 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1400 loss tensor(3.0339, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.09050392195939705\n",
      "gzsl: unseen=0.0000 , seen=0.0263 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1600 loss tensor(3.0348, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.09129763897199752\n",
      "gzsl: unseen=0.0000 , seen=0.0271 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 1800 loss tensor(3.0276, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.09297402049079494\n",
      "gzsl: unseen=0.0000 , seen=0.0276 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2000 loss tensor(3.0338, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.09612934776335653\n",
      "gzsl: unseen=0.0000 , seen=0.0278 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2200 loss tensor(3.0334, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.09698773772025478\n",
      "gzsl: unseen=0.0000 , seen=0.0289 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2400 loss tensor(3.0400, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.09810127543504212\n",
      "gzsl: unseen=0.0000 , seen=0.0305 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2600 loss tensor(3.0270, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.09892503819622686\n",
      "gzsl: unseen=0.0000 , seen=0.0316 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 2800 loss tensor(3.0226, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.09989945963349847\n",
      "gzsl: unseen=0.0000 , seen=0.0328 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3000 loss tensor(3.0316, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.100618733312881\n",
      "gzsl: unseen=0.0000 , seen=0.0340 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3200 loss tensor(3.0317, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10219062574987622\n",
      "gzsl: unseen=0.0000 , seen=0.0357 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3400 loss tensor(3.0215, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1030374733082033\n",
      "gzsl: unseen=0.0000 , seen=0.0393 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3600 loss tensor(3.0240, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10303170210891772\n",
      "gzsl: unseen=0.0000 , seen=0.0421 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 3800 loss tensor(3.0273, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10390740566367274\n",
      "gzsl: unseen=0.0000 , seen=0.0443 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4000 loss tensor(3.0229, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1041625534215618\n",
      "gzsl: unseen=0.0000 , seen=0.0463 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4200 loss tensor(3.0184, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1052530063392068\n",
      "gzsl: unseen=0.0000 , seen=0.0485 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4400 loss tensor(3.0264, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10656975101831292\n",
      "gzsl: unseen=0.0000 , seen=0.0512 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4600 loss tensor(3.0192, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10706273293623432\n",
      "gzsl: unseen=0.0000 , seen=0.0529 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 4800 loss tensor(3.0245, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10678450038120291\n",
      "gzsl: unseen=0.0000 , seen=0.0557 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5000 loss tensor(3.0218, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10690630306086184\n",
      "gzsl: unseen=0.0000 , seen=0.0587 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5200 loss tensor(3.0144, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1076255767402444\n",
      "gzsl: unseen=0.0000 , seen=0.0591 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5400 loss tensor(3.0199, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10687167586514834\n",
      "gzsl: unseen=0.0000 , seen=0.0599 , h=0.0000\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 5600 loss tensor(3.0167, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10672101718906146\n",
      "gzsl: unseen=0.0000 , seen=0.0614 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 5800 loss tensor(3.0247, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10647164063045796\n",
      "gzsl: unseen=0.0000 , seen=0.0616 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6000 loss tensor(3.0294, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10659344331011691\n",
      "gzsl: unseen=0.0000 , seen=0.0619 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6200 loss tensor(3.0173, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.106349837950799\n",
      "gzsl: unseen=0.0000 , seen=0.0633 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6400 loss tensor(3.0149, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10671524598977586\n",
      "gzsl: unseen=0.0000 , seen=0.0637 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6600 loss tensor(3.0137, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10697039374766495\n",
      "gzsl: unseen=0.0000 , seen=0.0644 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 6800 loss tensor(3.0217, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.106848591068006\n",
      "gzsl: unseen=0.0000 , seen=0.0653 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7000 loss tensor(3.0180, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10721977030626843\n",
      "gzsl: unseen=0.0000 , seen=0.0654 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7200 loss tensor(3.0207, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10735311538449857\n",
      "gzsl: unseen=0.0000 , seen=0.0655 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7400 loss tensor(3.0127, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10723708390412519\n",
      "gzsl: unseen=0.0000 , seen=0.0660 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7600 loss tensor(3.0188, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1076198055409588\n",
      "gzsl: unseen=0.0000 , seen=0.0663 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 7800 loss tensor(3.0129, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10738197138092649\n",
      "gzsl: unseen=0.0000 , seen=0.0662 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8000 loss tensor(3.0166, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1091449208890077\n",
      "gzsl: unseen=0.0000 , seen=0.0662 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8200 loss tensor(3.0094, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10967253000264261\n",
      "gzsl: unseen=0.0000 , seen=0.0658 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8400 loss tensor(3.0118, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.10992767776053167\n",
      "gzsl: unseen=0.0000 , seen=0.0660 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8600 loss tensor(3.0116, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11019436791699193\n",
      "gzsl: unseen=0.0000 , seen=0.0660 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 8800 loss tensor(3.0126, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11032771299522207\n",
      "gzsl: unseen=0.0000 , seen=0.0660 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9000 loss tensor(3.0106, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11083223731171463\n",
      "gzsl: unseen=0.0000 , seen=0.0660 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9200 loss tensor(3.0133, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1101071924330465\n",
      "gzsl: unseen=0.0000 , seen=0.0660 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9400 loss tensor(3.0124, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11047837167130894\n",
      "gzsl: unseen=0.0000 , seen=0.0660 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9600 loss tensor(3.0160, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11095981119065916\n",
      "gzsl: unseen=0.0000 , seen=0.0658 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 9800 loss tensor(3.0115, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11133099042892161\n",
      "gzsl: unseen=0.0000 , seen=0.0662 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10000 loss tensor(3.0136, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1110873850696037\n",
      "gzsl: unseen=0.0000 , seen=0.0662 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10200 loss tensor(3.0145, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11121495894854824\n",
      "gzsl: unseen=0.0000 , seen=0.0663 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10400 loss tensor(3.0122, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11146433550715173\n",
      "gzsl: unseen=0.0000 , seen=0.0662 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10600 loss tensor(3.0070, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11146433550715173\n",
      "gzsl: unseen=0.0000 , seen=0.0663 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 10800 loss tensor(3.0127, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11145856430786613\n",
      "gzsl: unseen=0.0000 , seen=0.0663 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11000 loss tensor(3.0087, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11207912010473206\n",
      "gzsl: unseen=0.0000 , seen=0.0663 , h=0.0000\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 11200 loss tensor(3.0129, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11183551474541417\n",
      "gzsl: unseen=0.0000 , seen=0.0665 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11400 loss tensor(3.0063, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11183551474541417\n",
      "gzsl: unseen=0.0000 , seen=0.0664 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11600 loss tensor(3.0063, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11232849666333558\n",
      "gzsl: unseen=0.0000 , seen=0.0664 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 11800 loss tensor(3.0119, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1124560705422801\n",
      "gzsl: unseen=0.0000 , seen=0.0666 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12000 loss tensor(3.0102, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11233426786262117\n",
      "gzsl: unseen=0.0000 , seen=0.0667 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12200 loss tensor(3.0064, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1124560705422801\n",
      "gzsl: unseen=0.0000 , seen=0.0667 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12400 loss tensor(3.0056, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1127054471008836\n",
      "gzsl: unseen=0.0000 , seen=0.0672 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12600 loss tensor(3.0129, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1127054471008836\n",
      "gzsl: unseen=0.0000 , seen=0.0672 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 12800 loss tensor(3.0096, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11328485666278743\n",
      "gzsl: unseen=0.0000 , seen=0.0672 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13000 loss tensor(3.0091, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11353423322139092\n",
      "gzsl: unseen=0.0000 , seen=0.0672 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13200 loss tensor(3.0097, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1137836097799944\n",
      "gzsl: unseen=0.0000 , seen=0.0674 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13400 loss tensor(3.0093, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11391118365893896\n",
      "gzsl: unseen=0.0000 , seen=0.0670 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13600 loss tensor(3.0066, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11391118365893896\n",
      "gzsl: unseen=0.0000 , seen=0.0670 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 13800 loss tensor(3.0090, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11452596825651931\n",
      "gzsl: unseen=0.0000 , seen=0.0670 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14000 loss tensor(3.0126, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11464777093617826\n",
      "gzsl: unseen=0.0000 , seen=0.0669 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14200 loss tensor(3.0076, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1147695736158372\n",
      "gzsl: unseen=0.0000 , seen=0.0670 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14400 loss tensor(3.0063, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11539590061198872\n",
      "gzsl: unseen=0.0000 , seen=0.0671 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14600 loss tensor(3.0119, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11551770329164768\n",
      "gzsl: unseen=0.0000 , seen=0.0670 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 14800 loss tensor(3.0057, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11551770329164768\n",
      "gzsl: unseen=0.0000 , seen=0.0672 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15000 loss tensor(3.0119, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11588888252991011\n",
      "gzsl: unseen=0.0000 , seen=0.0670 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15200 loss tensor(3.0075, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11588888252991011\n",
      "gzsl: unseen=0.0000 , seen=0.0672 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15400 loss tensor(3.0095, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1163876356471171\n",
      "gzsl: unseen=0.0000 , seen=0.0670 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15600 loss tensor(3.0142, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11663701220572058\n",
      "gzsl: unseen=0.0000 , seen=0.0670 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 15800 loss tensor(3.0056, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11676458608466511\n",
      "gzsl: unseen=0.0000 , seen=0.0670 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16000 loss tensor(3.0065, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11688638876432407\n",
      "gzsl: unseen=0.0000 , seen=0.0673 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16200 loss tensor(3.0046, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11688638876432407\n",
      "gzsl: unseen=0.0000 , seen=0.0673 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16400 loss tensor(3.0057, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11664278340500618\n",
      "gzsl: unseen=0.0000 , seen=0.0673 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 16600 loss tensor(3.0068, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11714153652221318\n",
      "gzsl: unseen=0.0000 , seen=0.0673 , h=0.0000\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 16800 loss tensor(3.0188, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1178954373973092\n",
      "gzsl: unseen=0.0000 , seen=0.0674 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17000 loss tensor(3.0081, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11790120859659481\n",
      "gzsl: unseen=0.0000 , seen=0.0670 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17200 loss tensor(3.0075, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1181505851551983\n",
      "gzsl: unseen=0.0000 , seen=0.0670 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17400 loss tensor(3.0069, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11852753559274634\n",
      "gzsl: unseen=0.0000 , seen=0.0672 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17600 loss tensor(3.0054, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11852753559274634\n",
      "gzsl: unseen=0.0000 , seen=0.0671 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 17800 loss tensor(3.0028, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11852753559274634\n",
      "gzsl: unseen=0.0000 , seen=0.0667 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18000 loss tensor(3.0054, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11902628870995331\n",
      "gzsl: unseen=0.0000 , seen=0.0669 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18200 loss tensor(3.0104, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11915963378818344\n",
      "gzsl: unseen=0.0000 , seen=0.0668 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18400 loss tensor(3.0044, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11965838690539041\n",
      "gzsl: unseen=0.0000 , seen=0.0668 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18600 loss tensor(3.0043, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.11965838690539041\n",
      "gzsl: unseen=0.0000 , seen=0.0668 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 18800 loss tensor(3.0069, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1204065165812009\n",
      "gzsl: unseen=0.0000 , seen=0.0666 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19000 loss tensor(3.0026, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1204065165812009\n",
      "gzsl: unseen=0.0000 , seen=0.0666 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19200 loss tensor(3.0134, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12090526969840787\n",
      "gzsl: unseen=0.0000 , seen=0.0662 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19400 loss tensor(3.0082, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12042383017905764\n",
      "gzsl: unseen=0.0000 , seen=0.0661 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19600 loss tensor(3.0036, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12068474913623231\n",
      "gzsl: unseen=0.0000 , seen=0.0659 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 19800 loss tensor(3.0038, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12093412569483579\n",
      "gzsl: unseen=0.0000 , seen=0.0656 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20000 loss tensor(3.0050, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1209398968941214\n",
      "gzsl: unseen=0.0000 , seen=0.0654 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20200 loss tensor(3.0075, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12118927345272487\n",
      "gzsl: unseen=0.0000 , seen=0.0654 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20400 loss tensor(3.0071, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12143865001132836\n",
      "gzsl: unseen=0.0000 , seen=0.0654 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20600 loss tensor(3.0089, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12156622389027291\n",
      "gzsl: unseen=0.0000 , seen=0.0649 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 20800 loss tensor(3.0140, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1218156004488764\n",
      "gzsl: unseen=0.0000 , seen=0.0649 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21000 loss tensor(3.0064, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1220649770074799\n",
      "gzsl: unseen=0.0000 , seen=0.0644 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21200 loss tensor(3.0053, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12219255088642442\n",
      "gzsl: unseen=0.0000 , seen=0.0644 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21400 loss tensor(3.0027, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12219255088642442\n",
      "gzsl: unseen=0.0000 , seen=0.0643 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21600 loss tensor(3.0048, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12170534016778863\n",
      "gzsl: unseen=0.0000 , seen=0.0642 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 21800 loss tensor(2.9999, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12158353748812967\n",
      "gzsl: unseen=0.0000 , seen=0.0640 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22000 loss tensor(3.0051, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12158353748812967\n",
      "gzsl: unseen=0.0000 , seen=0.0640 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22200 loss tensor(3.0052, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12158353748812967\n",
      "gzsl: unseen=0.0000 , seen=0.0640 , h=0.0000\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 22400 loss tensor(3.0082, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12208229060533667\n",
      "gzsl: unseen=0.0000 , seen=0.0640 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22600 loss tensor(3.0113, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12258681492182921\n",
      "gzsl: unseen=0.0000 , seen=0.0637 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 22800 loss tensor(3.0082, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12259258612111482\n",
      "gzsl: unseen=0.0000 , seen=0.0637 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23000 loss tensor(3.0049, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12292261912441513\n",
      "gzsl: unseen=0.0000 , seen=0.0640 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23200 loss tensor(3.0062, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12280081644475618\n",
      "gzsl: unseen=0.0000 , seen=0.0640 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23400 loss tensor(3.0066, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12317776688230422\n",
      "gzsl: unseen=0.0000 , seen=0.0638 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23600 loss tensor(3.0077, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12317776688230422\n",
      "gzsl: unseen=0.0000 , seen=0.0638 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 23800 loss tensor(3.0068, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12393166775740028\n",
      "gzsl: unseen=0.0000 , seen=0.0638 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24000 loss tensor(3.0085, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12430861819494829\n",
      "gzsl: unseen=0.0000 , seen=0.0638 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24200 loss tensor(3.0069, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12480737131215529\n",
      "gzsl: unseen=0.0000 , seen=0.0636 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24400 loss tensor(3.0031, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12480737131215529\n",
      "gzsl: unseen=0.0000 , seen=0.0636 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24600 loss tensor(3.0026, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12530612442936226\n",
      "gzsl: unseen=0.0000 , seen=0.0635 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 24800 loss tensor(3.0033, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12588553399126606\n",
      "gzsl: unseen=0.0000 , seen=0.0628 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25000 loss tensor(3.0057, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12639005830775868\n",
      "gzsl: unseen=0.0000 , seen=0.0623 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25200 loss tensor(3.0008, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12626248442881413\n",
      "gzsl: unseen=0.0000 , seen=0.0623 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25400 loss tensor(3.0036, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12626248442881413\n",
      "gzsl: unseen=0.0000 , seen=0.0622 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25600 loss tensor(3.0041, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1261406817491552\n",
      "gzsl: unseen=0.0000 , seen=0.0622 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 25800 loss tensor(3.0092, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12701638530391018\n",
      "gzsl: unseen=0.0000 , seen=0.0620 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26000 loss tensor(3.0056, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12726576186251365\n",
      "gzsl: unseen=0.0000 , seen=0.0620 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26200 loss tensor(3.0073, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12789208885866518\n",
      "gzsl: unseen=0.0000 , seen=0.0620 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26400 loss tensor(2.9985, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12789208885866518\n",
      "gzsl: unseen=0.0000 , seen=0.0619 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26600 loss tensor(3.0025, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12789208885866518\n",
      "gzsl: unseen=0.0000 , seen=0.0615 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 26800 loss tensor(3.0010, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12777028617900626\n",
      "gzsl: unseen=0.0000 , seen=0.0613 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27000 loss tensor(3.0057, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12790363125723636\n",
      "gzsl: unseen=0.0000 , seen=0.0613 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27200 loss tensor(3.0071, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.128333712240511\n",
      "gzsl: unseen=0.0000 , seen=0.0613 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27400 loss tensor(3.0063, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12846128611945556\n",
      "gzsl: unseen=0.0000 , seen=0.0606 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27600 loss tensor(3.0069, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1283394834397966\n",
      "gzsl: unseen=0.0000 , seen=0.0607 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 27800 loss tensor(3.0044, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12834525463908217\n",
      "gzsl: unseen=0.0000 , seen=0.0600 , h=0.0000\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 28000 loss tensor(3.0047, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12809587808047868\n",
      "gzsl: unseen=0.0000 , seen=0.0599 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28200 loss tensor(3.0073, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12847282851802672\n",
      "gzsl: unseen=0.0000 , seen=0.0595 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28400 loss tensor(3.0035, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12847282851802672\n",
      "gzsl: unseen=0.0000 , seen=0.0594 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28600 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12847282851802672\n",
      "gzsl: unseen=0.0000 , seen=0.0591 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 28800 loss tensor(3.0046, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1284785997173123\n",
      "gzsl: unseen=0.0000 , seen=0.0589 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29000 loss tensor(3.0007, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12835679703765335\n",
      "gzsl: unseen=0.0000 , seen=0.0586 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29200 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12811319167833543\n",
      "gzsl: unseen=0.0000 , seen=0.0586 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29400 loss tensor(3.0063, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12861194479554244\n",
      "gzsl: unseen=0.0000 , seen=0.0584 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29600 loss tensor(3.0041, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12849014211588347\n",
      "gzsl: unseen=0.0000 , seen=0.0584 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 29800 loss tensor(3.0036, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12849591331516905\n",
      "gzsl: unseen=0.0000 , seen=0.0582 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30000 loss tensor(3.0062, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12900043763166164\n",
      "gzsl: unseen=0.0000 , seen=0.0577 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30200 loss tensor(2.9998, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1294991907488686\n",
      "gzsl: unseen=0.0000 , seen=0.0577 , h=0.0000\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30400 loss tensor(3.0071, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12937738806920968\n",
      "gzsl: unseen=0.0002 , seen=0.0576 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30600 loss tensor(2.9967, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12937738806920968\n",
      "gzsl: unseen=0.0002 , seen=0.0576 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 30800 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297543385067577\n",
      "gzsl: unseen=0.0002 , seen=0.0574 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31000 loss tensor(3.0009, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12963253582709872\n",
      "gzsl: unseen=0.0002 , seen=0.0574 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31200 loss tensor(3.0065, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1295107331474398\n",
      "gzsl: unseen=0.0002 , seen=0.0574 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31400 loss tensor(3.0061, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12914532510846294\n",
      "gzsl: unseen=0.0002 , seen=0.0574 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31600 loss tensor(3.0030, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12926712778812188\n",
      "gzsl: unseen=0.0002 , seen=0.0573 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 31800 loss tensor(3.0019, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12914532510846294\n",
      "gzsl: unseen=0.0002 , seen=0.0573 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32000 loss tensor(3.0011, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12902352242880397\n",
      "gzsl: unseen=0.0002 , seen=0.0570 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32200 loss tensor(3.0043, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12902352242880397\n",
      "gzsl: unseen=0.0002 , seen=0.0567 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32400 loss tensor(3.0046, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12890171974914502\n",
      "gzsl: unseen=0.0002 , seen=0.0564 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32600 loss tensor(3.0017, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12902929362808957\n",
      "gzsl: unseen=0.0002 , seen=0.0564 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 32800 loss tensor(3.0010, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12903506482737515\n",
      "gzsl: unseen=0.0002 , seen=0.0564 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33000 loss tensor(3.0060, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12904083602666072\n",
      "gzsl: unseen=0.0002 , seen=0.0564 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33200 loss tensor(3.0030, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12891903334700178\n",
      "gzsl: unseen=0.0002 , seen=0.0563 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33400 loss tensor(3.0033, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12916840990560527\n",
      "gzsl: unseen=0.0002 , seen=0.0561 , h=0.0005\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 33600 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12892480454628735\n",
      "gzsl: unseen=0.0002 , seen=0.0561 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 33800 loss tensor(3.0055, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12917995230417645\n",
      "gzsl: unseen=0.0002 , seen=0.0561 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34000 loss tensor(3.0058, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12917995230417645\n",
      "gzsl: unseen=0.0002 , seen=0.0559 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34200 loss tensor(3.0016, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12930752618312097\n",
      "gzsl: unseen=0.0002 , seen=0.0558 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34400 loss tensor(2.9991, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12942932886277994\n",
      "gzsl: unseen=0.0002 , seen=0.0556 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34600 loss tensor(3.0027, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12955690274172446\n",
      "gzsl: unseen=0.0002 , seen=0.0556 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 34800 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12919149470274763\n",
      "gzsl: unseen=0.0002 , seen=0.0553 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35000 loss tensor(3.0011, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12955690274172446\n",
      "gzsl: unseen=0.0002 , seen=0.0551 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35200 loss tensor(3.0053, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12919149470274763\n",
      "gzsl: unseen=0.0002 , seen=0.0551 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35400 loss tensor(2.9991, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1289421181441441\n",
      "gzsl: unseen=0.0002 , seen=0.0550 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35600 loss tensor(3.0030, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12882031546448516\n",
      "gzsl: unseen=0.0002 , seen=0.0550 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 35800 loss tensor(3.0037, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12882031546448516\n",
      "gzsl: unseen=0.0002 , seen=0.0550 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36000 loss tensor(3.0044, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12906969202308866\n",
      "gzsl: unseen=0.0002 , seen=0.0549 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36200 loss tensor(3.0018, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1292030371013188\n",
      "gzsl: unseen=0.0002 , seen=0.0547 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36400 loss tensor(3.0035, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12970179021852576\n",
      "gzsl: unseen=0.0002 , seen=0.0547 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36600 loss tensor(3.0033, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12995693797641483\n",
      "gzsl: unseen=0.0002 , seen=0.0547 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 36800 loss tensor(3.0063, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13020631453501832\n",
      "gzsl: unseen=0.0002 , seen=0.0547 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37000 loss tensor(3.0028, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13029274217900075\n",
      "gzsl: unseen=0.0002 , seen=0.0547 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37200 loss tensor(3.0028, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13029274217900075\n",
      "gzsl: unseen=0.0002 , seen=0.0547 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37400 loss tensor(3.0021, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13029851337828635\n",
      "gzsl: unseen=0.0002 , seen=0.0545 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37600 loss tensor(3.0071, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13054788993688984\n",
      "gzsl: unseen=0.0002 , seen=0.0544 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 37800 loss tensor(2.9991, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13055366113617545\n",
      "gzsl: unseen=0.0002 , seen=0.0544 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38000 loss tensor(3.0077, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13031005577685753\n",
      "gzsl: unseen=0.0002 , seen=0.0541 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38200 loss tensor(3.0047, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13068123501511997\n",
      "gzsl: unseen=0.0002 , seen=0.0537 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38400 loss tensor(2.9972, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13055943233546102\n",
      "gzsl: unseen=0.0002 , seen=0.0539 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38600 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1303158269761431\n",
      "gzsl: unseen=0.0002 , seen=0.0538 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 38800 loss tensor(3.0064, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1305240572997845\n",
      "gzsl: unseen=0.0002 , seen=0.0537 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39000 loss tensor(2.9971, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1304080258194111\n",
      "gzsl: unseen=0.0002 , seen=0.0536 , h=0.0005\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 39200 loss tensor(3.0047, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1304080258194111\n",
      "gzsl: unseen=0.0002 , seen=0.0536 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39400 loss tensor(2.9989, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1304080258194111\n",
      "gzsl: unseen=0.0002 , seen=0.0536 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39600 loss tensor(2.9974, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1304080258194111\n",
      "gzsl: unseen=0.0002 , seen=0.0536 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 39800 loss tensor(3.0014, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1304080258194111\n",
      "gzsl: unseen=0.0002 , seen=0.0534 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40000 loss tensor(3.0050, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1304080258194111\n",
      "gzsl: unseen=0.0002 , seen=0.0536 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40200 loss tensor(3.0072, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13029199433903776\n",
      "gzsl: unseen=0.0002 , seen=0.0533 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40400 loss tensor(3.0030, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1301701916593788\n",
      "gzsl: unseen=0.0002 , seen=0.0534 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40600 loss tensor(3.0047, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13004838897971988\n",
      "gzsl: unseen=0.0002 , seen=0.0534 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 40800 loss tensor(3.0047, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13004838897971988\n",
      "gzsl: unseen=0.0002 , seen=0.0533 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41000 loss tensor(2.9992, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13004838897971988\n",
      "gzsl: unseen=0.0002 , seen=0.0533 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41200 loss tensor(2.9990, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13004838897971988\n",
      "gzsl: unseen=0.0002 , seen=0.0533 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41400 loss tensor(3.0047, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1299265863000609\n",
      "gzsl: unseen=0.0002 , seen=0.0533 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41600 loss tensor(3.0049, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1299265863000609\n",
      "gzsl: unseen=0.0002 , seen=0.0532 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 41800 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12980478362040196\n",
      "gzsl: unseen=0.0002 , seen=0.0532 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42000 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12980478362040196\n",
      "gzsl: unseen=0.0002 , seen=0.0533 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42200 loss tensor(3.0007, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12980478362040196\n",
      "gzsl: unseen=0.0002 , seen=0.0532 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42400 loss tensor(3.0013, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12980478362040196\n",
      "gzsl: unseen=0.0002 , seen=0.0532 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42600 loss tensor(3.0011, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12980478362040196\n",
      "gzsl: unseen=0.0002 , seen=0.0533 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 42800 loss tensor(3.0023, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.129682980940743\n",
      "gzsl: unseen=0.0002 , seen=0.0532 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43000 loss tensor(3.0084, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.129682980940743\n",
      "gzsl: unseen=0.0002 , seen=0.0534 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43200 loss tensor(3.0077, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.129682980940743\n",
      "gzsl: unseen=0.0002 , seen=0.0534 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43400 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12956117826108404\n",
      "gzsl: unseen=0.0002 , seen=0.0534 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43600 loss tensor(3.0071, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.129682980940743\n",
      "gzsl: unseen=0.0002 , seen=0.0534 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 43800 loss tensor(3.0072, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12956117826108404\n",
      "gzsl: unseen=0.0002 , seen=0.0532 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44000 loss tensor(3.0009, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13005993137829103\n",
      "gzsl: unseen=0.0002 , seen=0.0532 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44200 loss tensor(3.0055, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13005993137829103\n",
      "gzsl: unseen=0.0002 , seen=0.0532 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44400 loss tensor(3.0046, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12981055481968753\n",
      "gzsl: unseen=0.0002 , seen=0.0531 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 44600 loss tensor(2.9982, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13005993137829103\n",
      "gzsl: unseen=0.0002 , seen=0.0529 , h=0.0005\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 44800 loss tensor(3.0040, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12981055481968753\n",
      "gzsl: unseen=0.0002 , seen=0.0529 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45000 loss tensor(3.0028, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1302681617019324\n",
      "gzsl: unseen=0.0002 , seen=0.0529 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45200 loss tensor(3.0027, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13018750525723555\n",
      "gzsl: unseen=0.0002 , seen=0.0529 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45400 loss tensor(3.0040, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1305175382605359\n",
      "gzsl: unseen=0.0002 , seen=0.0529 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45600 loss tensor(3.0044, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13039573558087694\n",
      "gzsl: unseen=0.0002 , seen=0.0529 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 45800 loss tensor(3.0045, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13064511213948043\n",
      "gzsl: unseen=0.0002 , seen=0.0529 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46000 loss tensor(3.0001, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13064511213948043\n",
      "gzsl: unseen=0.0002 , seen=0.0529 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46200 loss tensor(3.0014, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1308944886980839\n",
      "gzsl: unseen=0.0002 , seen=0.0529 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46400 loss tensor(2.9998, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1308944886980839\n",
      "gzsl: unseen=0.0002 , seen=0.0528 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46600 loss tensor(3.0041, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1308944886980839\n",
      "gzsl: unseen=0.0002 , seen=0.0528 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 46800 loss tensor(3.0064, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1311438652566874\n",
      "gzsl: unseen=0.0002 , seen=0.0528 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47000 loss tensor(3.0053, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1311438652566874\n",
      "gzsl: unseen=0.0002 , seen=0.0528 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47200 loss tensor(3.0029, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13102206257702845\n",
      "gzsl: unseen=0.0002 , seen=0.0527 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47400 loss tensor(3.0034, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13102206257702845\n",
      "gzsl: unseen=0.0002 , seen=0.0527 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47600 loss tensor(3.0011, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1306566545380516\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 47800 loss tensor(3.0007, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13102206257702845\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48000 loss tensor(3.0012, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1309002598973695\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48200 loss tensor(3.0023, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1304130491787337\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48400 loss tensor(3.0105, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13029124649907475\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48600 loss tensor(3.0024, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13053485185839267\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 48800 loss tensor(3.0000, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1304130491787337\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49000 loss tensor(3.0020, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12980403578043892\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49200 loss tensor(3.0000, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12980403578043892\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49400 loss tensor(3.0017, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12968223310077998\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49600 loss tensor(3.0042, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12968223310077998\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 49800 loss tensor(3.0003, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12968223310077998\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50000 loss tensor(3.0028, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12956043042112103\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50200 loss tensor(3.0015, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12956043042112103\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 50400 loss tensor(3.0017, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12956043042112103\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50600 loss tensor(2.9993, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12956043042112103\n",
      "gzsl: unseen=0.0002 , seen=0.0525 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 50800 loss tensor(3.0071, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12956043042112103\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51000 loss tensor(3.0026, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12956043042112103\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51200 loss tensor(3.0060, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12956043042112103\n",
      "gzsl: unseen=0.0002 , seen=0.0525 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51400 loss tensor(3.0038, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12980980697972452\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51600 loss tensor(2.9979, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12980980697972452\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 51800 loss tensor(3.0035, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12980980697972452\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52000 loss tensor(2.9989, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12968800430006558\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52200 loss tensor(3.0025, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12993738085866907\n",
      "gzsl: unseen=0.0002 , seen=0.0525 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52400 loss tensor(3.0046, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12993738085866907\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52600 loss tensor(3.0035, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12993738085866907\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 52800 loss tensor(3.0025, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13018675741727254\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53000 loss tensor(3.0015, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13018675741727254\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53200 loss tensor(3.0024, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13018675741727254\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53400 loss tensor(3.0013, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13018675741727254\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53600 loss tensor(3.0071, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13018675741727254\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 53800 loss tensor(3.0001, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13018675741727254\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54000 loss tensor(3.0057, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13018675741727254\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54200 loss tensor(3.0021, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13018675741727254\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54400 loss tensor(3.0023, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1300649547376136\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54600 loss tensor(3.0037, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12994315205795465\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 54800 loss tensor(3.0065, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13018675741727254\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55000 loss tensor(3.0010, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298213493782957\n",
      "gzsl: unseen=0.0002 , seen=0.0523 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55200 loss tensor(3.0034, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12945594133931884\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55400 loss tensor(3.0040, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12945594133931884\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55600 loss tensor(3.0008, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1295777440189778\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 55800 loss tensor(3.0043, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1295777440189778\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 56000 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1295777440189778\n",
      "gzsl: unseen=0.0002 , seen=0.0522 , h=0.0005\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56200 loss tensor(3.0027, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12945594133931884\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56400 loss tensor(3.0095, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12945594133931884\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56600 loss tensor(3.0051, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12945594133931884\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 56800 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12945594133931884\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57000 loss tensor(3.0026, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12945594133931884\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57200 loss tensor(3.0071, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12945594133931884\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57400 loss tensor(3.0053, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12945594133931884\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57600 loss tensor(3.0017, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12945594133931884\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 57800 loss tensor(3.0045, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12970531789792233\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58000 loss tensor(2.9977, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12945594133931884\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58200 loss tensor(3.0047, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12958351521826336\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58400 loss tensor(3.0057, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12958351521826336\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58600 loss tensor(3.0020, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12958351521826336\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 58800 loss tensor(2.9986, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12946171253860442\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59000 loss tensor(3.0009, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297110890972079\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59200 loss tensor(3.0047, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297110890972079\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59400 loss tensor(2.9996, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12958928641754894\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59600 loss tensor(3.0051, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12958928641754894\n",
      "gzsl: unseen=0.0005 , seen=0.0523 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 59800 loss tensor(2.9999, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12958928641754894\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60000 loss tensor(3.0014, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12958928641754894\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60200 loss tensor(2.9985, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12958928641754894\n",
      "gzsl: unseen=0.0005 , seen=0.0522 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60400 loss tensor(3.0035, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12958928641754894\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60600 loss tensor(3.0015, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12983866297615246\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 60800 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61000 loss tensor(3.0005, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61200 loss tensor(3.0050, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61400 loss tensor(3.0013, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12983866297615246\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 61600 loss tensor(2.9998, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 61800 loss tensor(3.0008, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62000 loss tensor(3.0038, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62200 loss tensor(3.0042, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62400 loss tensor(3.0023, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62600 loss tensor(3.0015, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 62800 loss tensor(3.0037, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63000 loss tensor(3.0004, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63200 loss tensor(3.0074, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63400 loss tensor(2.9981, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63600 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12959505761683457\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 63800 loss tensor(2.9997, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64000 loss tensor(3.0007, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64200 loss tensor(3.0011, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12959505761683457\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64400 loss tensor(3.0031, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12959505761683457\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64600 loss tensor(3.0052, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 64800 loss tensor(3.0008, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65000 loss tensor(2.9994, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65200 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65400 loss tensor(3.0010, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12959505761683457\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65600 loss tensor(3.0012, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297168602964935\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 65800 loss tensor(2.9972, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12984443417543806\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66000 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12984443417543806\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66200 loss tensor(2.9995, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12984443417543806\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66400 loss tensor(3.0046, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297226314957791\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66600 loss tensor(3.0014, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297226314957791\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 66800 loss tensor(3.0049, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297226314957791\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67000 loss tensor(3.0027, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1297226314957791\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 67200 loss tensor(3.0039, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13009381073404153\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67400 loss tensor(3.0088, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12997200805438258\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67600 loss tensor(3.0025, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12984443417543806\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 67800 loss tensor(3.0057, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12985020537472364\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68000 loss tensor(3.0017, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12997200805438258\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68200 loss tensor(3.0016, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13009381073404153\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68400 loss tensor(3.0063, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12985020537472364\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68600 loss tensor(3.0026, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12997777925366816\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 68800 loss tensor(3.0010, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12972840269506467\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69000 loss tensor(3.0043, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69200 loss tensor(3.0013, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1300995819333271\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69400 loss tensor(3.0023, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69600 loss tensor(3.0025, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 69800 loss tensor(3.0045, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12997777925366816\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70000 loss tensor(2.9970, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70200 loss tensor(2.9974, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70400 loss tensor(3.0050, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70600 loss tensor(3.0019, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 70800 loss tensor(3.0054, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12997777925366816\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71000 loss tensor(2.9971, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12997777925366816\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71200 loss tensor(3.0066, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71400 loss tensor(3.0069, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12997777925366816\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71600 loss tensor(2.9993, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 71800 loss tensor(2.9957, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72000 loss tensor(3.0050, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72200 loss tensor(3.0007, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72400 loss tensor(3.0020, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 72600 loss tensor(3.0083, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 72800 loss tensor(3.0055, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73000 loss tensor(3.0009, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73200 loss tensor(3.0023, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73400 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73600 loss tensor(3.0090, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 73800 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74000 loss tensor(3.0033, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74200 loss tensor(3.0042, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74400 loss tensor(3.0042, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74600 loss tensor(3.0030, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 74800 loss tensor(3.0044, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75000 loss tensor(3.0046, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75200 loss tensor(3.0025, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75400 loss tensor(3.0037, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75600 loss tensor(3.0050, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 75800 loss tensor(3.0103, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76000 loss tensor(3.0028, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76200 loss tensor(2.9976, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76400 loss tensor(3.0045, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76600 loss tensor(3.0066, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 76800 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77000 loss tensor(3.0017, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77200 loss tensor(3.0016, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77400 loss tensor(2.9990, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77600 loss tensor(2.9945, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 77800 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78000 loss tensor(3.0023, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78200 loss tensor(3.0040, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 78400 loss tensor(2.9976, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78600 loss tensor(2.9990, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 78800 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79000 loss tensor(3.0002, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79200 loss tensor(3.0060, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79400 loss tensor(3.0014, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79600 loss tensor(3.0031, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 79800 loss tensor(3.0010, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80000 loss tensor(3.0077, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13010535313261268\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80200 loss tensor(3.0051, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80400 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80600 loss tensor(3.0033, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 80800 loss tensor(3.0037, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81000 loss tensor(3.0006, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81200 loss tensor(3.0005, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81400 loss tensor(2.9998, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81600 loss tensor(3.0028, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 81800 loss tensor(3.0058, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82000 loss tensor(3.0067, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82200 loss tensor(2.9983, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82400 loss tensor(3.0018, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82600 loss tensor(2.9984, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 82800 loss tensor(3.0106, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83000 loss tensor(3.0099, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83200 loss tensor(3.0000, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83400 loss tensor(2.9997, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83600 loss tensor(3.0031, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 83800 loss tensor(3.0025, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 84000 loss tensor(2.9993, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84200 loss tensor(3.0029, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84400 loss tensor(2.9996, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84600 loss tensor(3.0010, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 84800 loss tensor(3.0069, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13010535313261268\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85000 loss tensor(3.0042, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85200 loss tensor(3.0013, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85400 loss tensor(3.0013, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85600 loss tensor(2.9981, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 85800 loss tensor(3.0011, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86000 loss tensor(3.0041, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86200 loss tensor(2.9991, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13010535313261268\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86400 loss tensor(3.0007, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86600 loss tensor(3.0051, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 86800 loss tensor(3.0060, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87000 loss tensor(3.0051, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87200 loss tensor(3.0070, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13010535313261268\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87400 loss tensor(3.0020, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13010535313261268\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87600 loss tensor(2.9998, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13010535313261268\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 87800 loss tensor(3.0046, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13010535313261268\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88000 loss tensor(2.9998, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88200 loss tensor(3.0053, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13010535313261268\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88400 loss tensor(2.9998, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88600 loss tensor(2.9995, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 88800 loss tensor(3.0046, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89000 loss tensor(3.0058, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89200 loss tensor(3.0078, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89400 loss tensor(3.0052, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 89600 loss tensor(3.0015, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 89800 loss tensor(3.0016, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90000 loss tensor(3.0012, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90200 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90400 loss tensor(3.0069, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90600 loss tensor(3.0030, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 90800 loss tensor(3.0062, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91000 loss tensor(3.0059, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91200 loss tensor(3.0031, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91400 loss tensor(3.0043, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91600 loss tensor(3.0020, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 91800 loss tensor(2.9985, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92000 loss tensor(3.0053, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92200 loss tensor(3.0038, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.13010535313261268\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92400 loss tensor(3.0102, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92600 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 92800 loss tensor(3.0020, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93000 loss tensor(2.9973, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93200 loss tensor(2.9979, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93400 loss tensor(2.9991, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93600 loss tensor(3.0026, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 93800 loss tensor(2.9999, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94000 loss tensor(3.0019, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94200 loss tensor(2.9999, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94400 loss tensor(3.0026, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94600 loss tensor(3.0013, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 94800 loss tensor(3.0026, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95000 loss tensor(3.0026, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "episode: 95200 loss tensor(3.0032, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95400 loss tensor(2.9998, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95600 loss tensor(3.0042, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 95800 loss tensor(3.0028, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96000 loss tensor(3.0014, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96200 loss tensor(2.9986, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.1298559765740092\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96400 loss tensor(3.0042, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96600 loss tensor(3.0021, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 96800 loss tensor(3.0076, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97000 loss tensor(2.9957, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97200 loss tensor(3.0071, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97400 loss tensor(3.0017, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97600 loss tensor(3.0002, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 97800 loss tensor(3.0042, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98000 loss tensor(3.0005, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98200 loss tensor(3.0023, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98400 loss tensor(2.9993, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12998355045295373\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98600 loss tensor(3.0030, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 98800 loss tensor(3.0042, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0519 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99000 loss tensor(3.0015, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99200 loss tensor(3.0044, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99400 loss tensor(3.0007, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0520 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99600 loss tensor(3.0022, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 99800 loss tensor(3.0021, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n",
      "episode: 100000 loss tensor(3.0136, device='cuda:0')\n",
      "loss_zero_number=  0\n",
      "Testing...\n",
      "class num: 10\n",
      "class num: 50\n",
      "class num: 50\n",
      "zsl: 0.12973417389435024\n",
      "gzsl: unseen=0.0005 , seen=0.0517 , h=0.0010\n",
      "____________________________________________________________________________________________________\n"
     ]
    }
   ],
   "source": [
    "print(\"training...\")\n",
    "last_accuracy = 0.0\n",
    "loss_zero_num =0\n",
    "#writer = SummaryWriter()\n",
    "#vis = visdom.Visdom()\n",
    "for episode in range(EPISODE):\n",
    "\n",
    "    attribute_network_scheduler.step(episode)\n",
    "    metric_network_scheduler.step(episode)\n",
    "\n",
    "    train_loader = DataLoader(train_data, batch_size=BATCH_SIZE, shuffle=True)\n",
    "\n",
    "    batch_labels, batch_features = train_loader.__iter__().next()\n",
    "    batch_id = np.unique(batch_labels)\n",
    "\n",
    "    batch_attributes = torch.Tensor([all_attributes[i] for i in batch_id]).squeeze(1)\n",
    "    batch_features_ext = torch.from_numpy(batch_features.numpy().repeat(batch_id.size, 0))\n",
    "    batch_attributes_ext = batch_attributes.repeat(BATCH_SIZE, 1)\n",
    "\n",
    "    batch_features_ext = Variable(batch_features_ext).cuda(GPU).float()  # 32*2048\n",
    "    batch_attributes_ext = Variable(batch_attributes_ext).cuda(GPU)\n",
    "\n",
    "\n",
    "    re_batch_labels = []\n",
    "    for label in batch_labels.numpy():\n",
    "        index = np.argwhere(batch_id == label)\n",
    "        re_batch_labels.append(index[0][0])\n",
    "    re_batch_labels = torch.cuda.LongTensor(re_batch_labels)\n",
    "    re_batch_labels = Variable(re_batch_labels).cuda(GPU)\n",
    "    \n",
    "\n",
    "    criterion = HardTripletLoss_D(margin = Margin,cos_sim=True).cuda(GPU)\n",
    "    triplet_loss= criterion((attribute_network(batch_attributes_ext)), \n",
    "                            (batch_features_ext), re_batch_labels)\n",
    "    if triplet_loss == 0:\n",
    "        loss_zero_num = loss_zero_num + 1\n",
    "    \n",
    "    \n",
    "    attribute_network.zero_grad()\n",
    "    metric_network.zero_grad()\n",
    "    \n",
    "    triplet_loss.backward()\n",
    "    \n",
    "    attribute_network_optim.step()\n",
    "    metric_network_optim.step()\n",
    "\n",
    "    \n",
    "    if (episode+1)%200 == 0 or episode==0:\n",
    "        print(\"episode:\", episode+1, \"loss\", triplet_loss)\n",
    "        print('loss_zero_number= ',loss_zero_num)\n",
    "        loss_zero_num = 0\n",
    "        #writer.add_scalar('data/loss', triplet_loss, episode)\n",
    "    \n",
    "    if (episode+1)%200 == 0 or episode==0:\n",
    "        print(\"Testing...\")\n",
    "        #attribute_network.eval()\n",
    "        zsl_accuracy = compute_accuracy_per_class(test_features, test_label, test_id, test_attributes,cos_sim=True)\n",
    "        gzsl_unseen_accuracy = compute_accuracy_per_class(test_features, test_label, np.arange(50), attributes,cos_sim=True)\n",
    "        gzsl_seen_accuracy = compute_accuracy_per_class(test_seen_features, test_seen_label, np.arange(50), attributes,cos_sim=True)\n",
    "        H = 2 * gzsl_seen_accuracy * gzsl_unseen_accuracy / (gzsl_unseen_accuracy + gzsl_seen_accuracy)\n",
    "        #H2 = 2 * gzsl_seen_accuracy2 * gzsl_unseen_accuracy2 / (gzsl_unseen_accuracy2 + gzsl_seen_accuracy2)\n",
    "        print('zsl:', zsl_accuracy)\n",
    "        #print('zsl:', zsl_accuracy2)\n",
    "        print('gzsl: unseen=%.4f , seen=%.4f , h=%.4f' % (gzsl_unseen_accuracy , gzsl_seen_accuracy, H))\n",
    "        #print('gzsl: unseen=%.4f , seen=%.4f , h=%.4f' % (gzsl_unseen_accuracy2 , gzsl_seen_accuracy2, H2))\n",
    "        print('_'*100)\n",
    "        #writer.add_scalar('data/zsl_accuracy', zsl_accuracy, episode)\n",
    "        #writer.add_scalar('data/gzsl_unseen_accuracy', gzsl_unseen_accuracy, episode)\n",
    "        #writer.add_scalar('data/gzsl_seen_accuracy', gzsl_seen_accuracy, episode)\n",
    "        #writer.add_scalar('data/H', H, episode)\n",
    "#features = images.view(, 784)\n",
    "#print(vis_label.size())\n",
    "#writer.add_embedding(vis_images, metadata = vis_label.tolist())\n",
    "#writer.add_embedding(vis_att, metadata = vis_label_att)\n",
    "#writer.export_scalars_to_json(\"./test.json\")\n",
    "#writer.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "hide_input": false,
  "kernelspec": {
   "display_name": "pytorch",
   "language": "python",
   "name": "pytorch"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
